package cn.com.surker.production.dao;

import cn.com.surker.production.entity.ProductionTransportBill;
import cn.com.surker.production.vo.TranBillVo;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 生产运输结算信息表 Mapper 接口
 * </p>
 *
 * @author admin
 * @since 2024-05-31
 */
public interface ProductionTransportBillDao extends BaseMapper<ProductionTransportBill> {

    /**
     * 查询是否存在审核记录的数据
     * @return
     */
    Integer findExamineTotal(Long orgId, String today);

    /**
     * 查询运输日产值
     * @return
     */
    List<TranBillVo> findTranDayPrice(Long orgId, Long conId, Long supplierId, Integer tranType,
                                      Integer countType, Integer roadType, Integer overLimit, Integer carModelType,
                                      String startDate, String endDate);

    Integer saveBatch(List<ProductionTransportBill> list);

    /**
     * 查询结算是否存在
     * @param conId 销售合同ID
     * @param oilPrice 油价系数价格
     * @return
     */
    ProductionTransportBill findExistBill(Long orgId, String today, Long conId, Long supplierId, Integer tranType,
                                          Integer countType, Integer carModelType, Integer roadType, Integer overLimit,
                                          Double price, Double oilPrice);

    /**
     * 统计付款金额 todo 是否删除
     * @param startTime
     * @param endTime
     * @return
     */
    List<ProductionTransportBill> totalPayMoney(String startTime, String endTime);
    /**
     * 统计供应商累计结算 todo 是否删除
     * @param startTime
     * @param endTime
     * @return
     */
    List<ProductionTransportBill> totalSupplier(String startTime, String endTime, Integer billType);

    /**
     * 根据公司 erpid 查询记录 todo 是否删除
     * @param orgId
     * @param erpid
     * @return
     */
    ProductionTransportBill findByErpId(Long orgId, Integer erpid, Long supplierId);

    /**
     * 查询统计日期 todo 是否删除
     * @return
     */
    List<Map<String, Object>> findToday();
}
